Cleanup

Added a DAO layer to make sure Stocks are not getting overridden

Added observable events types

Added some error types