BUGFIX: use readlink to get absolute path