updating, major overhaul from blog to port