these are done somewhat