some changes need to be done still, but eh