drawing fully functional