Feature/abstraction base

Initial abstraction base.