ripped off some stuff :)