creating a framework from scratch