change api a bit and start basic framework