more elegant solution for arrows