prepared basic framework and it works