separated draw func