adding control and status functionality