Add Observer functions and BUTCoreTest, BUTCore DONE!