Refactor to distinct getters

Instead of having one getter with different methods, created two distinct types of getters: LenientGetter and StrictGetter