some character framework

havent tested yet. not used anywhere so should be no problem :P