spaghetti
Fixed a bug
Added more stuff for discarding
Added observer
Complete command line, but need to fix bugs