implement custom signals, refactor update system

implement custom signals, refactor update system