reduced complexity per method again
added comments