general framework is working