refactored asset generation and drawing