#18 support customised location