backend controllers refactoring
added base form, some refactoring, tests