added picking and other functionality