refactor drawing to utilize signals, plus reorganize file structure