better needle handling. needs setValue work