adding state, timer, start/stop methods