better aspect declaration + compose function