base software framwork