all diagonal cases working now