building a simple framework from scratch