finished mainly with homework 3.0 one little bug fix needed.