basically complete, css need to be optimized