Build the whole API according to OOP's concepts

Signed-off-by: Umair Khan <omerjerk@gmail.com>