updated with a few steps that need to be coded still