decent canvas setup, ready to implement essential features