changed from hardcoded needle width/height to dynamic