the inheritance hierarchy didn't work out cause the done/dues do some funky stuff, so this is just copied and modified from the parent function