add draw logic - probably can be cleaned up