updated approach
finished approach