small changes. still need to modify a lot of things