pretty buggy will need to update later