stop using hacks and use conditionals