Make framework more generic