Added basic processors, added more abstraction, created unittest