extract pickup effect into separate class