you can always make it simpler :P