Overhauling implementation for simpler implementation