changed the way non-default functions work
changed the way non-default functions work