use explicit casting instead of implicit