Add abstract Controler Class

Signed-off-by: Wadjetz <egor.neon@gmail.com>