implemented draw