complete rewrite based off rsps include