A bit outdated post but many points stay valid.