add init/cleanup to input, ticker, and add painter base