abstract gosu object