Stripped down framework to be generic