some progress, redoing some parts, adding others..