add core location function