add constructor for custom interval
add free form stuff by ben