Deduplicate ALL the code

Create Drawable interface and use it where possible.

Signed-off-by: Piotr Bocheński <bochenski.piotr@gmail.com>