Added bonus option, refactored a bit