improve reflection
delete redundant classes
refactor Down, generalize a bit
start work on optimizer