added support for negative positions