refactors input; handles weight naively