Made the base functionality