Moved logic to separate package
Added argument classes