Initial working version. still need to test overrides