coding shadows, just need to trim the useless stuff