refactored console version to be more like gl version