got lots of help from Ryan and Andres