added batch and implementation to it, renamed stuff, defined interfaces and updated readme