complete rehaul of code adding methods for different tasks