added extensible and testable fizzbuzz