Skip to content
Rob Johnstone logo with RE/MAX Mountain View on a white background, representing his real estate services in Calgary.
  • Search
    • Search Tools
      • Search Calgary MLS®
      • Advanced Home Search
      • Interactive Map Search
      • Calgary New Listings
      • Our Featured Listings
      • Coming Soon
    • Property Types
      • Houses
      • Condominium
      • Detached
      • Semi-Detached (Half Duplex)
      • Row/Townhouses
      • Multi Family
      • Residential Land
    • Commercial
      • Acreage & Country
      • Commercial
      • Industrial Land
      • Retail Properties
      • Triplex
      • Fourplex
      • Full Duplex
    • Surrounding Areas
      • Airdrie
      • Bearspaw
      • Cochrane
      • Chestermere
      • De Winton
      • High River
      • Okotoks
      • Priddis Greens
      • Springbank
      • Strathmore
    • Lifestyles
      • Luxury
      • Condominium
      • Acreage & Country
      • Golf Course
      • Waterfront Homes
  • Communities
    • Calgary CREB Zones​
    • Calgary Lake Communities
    • City Centre Calgary Communities
    • North Calgary Communities
    • Northwest Calgary Communities
    • Northeast Calgary Communities & Homes for Sale
    • Southeast Calgary Communities
    • Southwest Calgary Communities
    • West Hills Calgary Communities
    • East Calgary Communities
  • Selling
    • Pricing Your Home
    • Marketing Your Home
    • Community Solds
    • Adding Value
    • Selling Process
  • Buying
    • Home Buying Costs
    • Home Buying Process
    • Inspection
  • About
    • About Rob Johnstone
    • Blog
      • Real Estate Success Stories & Experiences
      • Calgary Real Estate Market Reports
      • Real Estate News & Policy Changes
      • Buying a Home in Calgary – Tips & Guides
      • Real Estate Legal Cases & Lessons
      • Buying Real Estate in Mexico
  • Contact Us
  • Login
    • Login
    • Register
    • Control Panel
    • My Favorites
    • My Saved Searches
    • Custom Listings Panel
    • Report Panel
    • Market Conditions
    • Logout
  • Toggle website search
Menu Close
  • Search
    • Search Tools
      • Search Calgary MLS®
      • Advanced Home Search
      • Interactive Map Search
      • Calgary New Listings
      • Our Featured Listings
      • Coming Soon
    • Property Types
      • Houses
      • Condominium
      • Detached
      • Semi-Detached (Half Duplex)
      • Row/Townhouses
      • Multi Family
      • Residential Land
    • Commercial
      • Acreage & Country
      • Commercial
      • Industrial Land
      • Retail Properties
      • Triplex
      • Fourplex
      • Full Duplex
    • Surrounding Areas
      • Airdrie
      • Bearspaw
      • Cochrane
      • Chestermere
      • De Winton
      • High River
      • Okotoks
      • Priddis Greens
      • Springbank
      • Strathmore
    • Lifestyles
      • Luxury
      • Condominium
      • Acreage & Country
      • Golf Course
      • Waterfront Homes
  • Communities
    • Calgary CREB Zones​
    • Calgary Lake Communities
    • City Centre Calgary Communities
    • North Calgary Communities
    • Northwest Calgary Communities
    • Northeast Calgary Communities & Homes for Sale
    • Southeast Calgary Communities
    • Southwest Calgary Communities
    • West Hills Calgary Communities
    • East Calgary Communities
  • Selling
    • Pricing Your Home
    • Marketing Your Home
    • Community Solds
    • Adding Value
    • Selling Process
  • Buying
    • Home Buying Costs
    • Home Buying Process
    • Inspection
  • About
    • About Rob Johnstone
    • Blog
      • Real Estate Success Stories & Experiences
      • Calgary Real Estate Market Reports
      • Real Estate News & Policy Changes
      • Buying a Home in Calgary – Tips & Guides
      • Real Estate Legal Cases & Lessons
      • Buying Real Estate in Mexico
  • Contact Us
  • Login
    • Login
    • Register
    • Control Panel
    • My Favorites
    • My Saved Searches
    • Custom Listings Panel
    • Report Panel
    • Market Conditions
    • Logout
  • Toggle website search
  • Quick Search
  • Cities
  • Type
  • Price
      • $50,000
      • $75,000
      • $100,000
      • $150,000
      • $200,000
      • $250,000
      • $300,000
      • $400,000
      • $500,000
      • $600,000
      • $700,000
      • $800,000
      • $900,000
      • $1,000,000
      • $1,250,000
      • $1,500,000
      • $2,000,000
      • $3,000,000
      • $4,000,000
      • $5,000,000
      • $6,000,000
      • $7,000,000
      • $8,000,000
      • $9,000,000
      • $10,000,000
      • $15,000,000
      • $20,000,000
      • $50,000
      • $75,000
      • $100,000
      • $150,000
      • $200,000
      • $250,000
      • $300,000
      • $400,000
      • $500,000
      • $600,000
      • $700,000
      • $800,000
      • $900,000
      • $1,000,000
      • $1,250,000
      • $1,500,000
      • $2,000,000
      • $3,000,000
      • $4,000,000
      • $5,000,000
      • $6,000,000
      • $7,000,000
      • $8,000,000
      • $9,000,000
      • $10,000,000
      • $15,000,000
      • $20,000,000
  • Bedrooms
    • 0+ Bedrooms
    • 1+ Bedrooms
    • 2+ Bedrooms
    • 3+ Bedrooms
    • 4+ Bedrooms
    • 5+ Bedrooms
    • 6+ Bedrooms
  • Bathrooms
    • 0+ Bathrooms
    • 1+ Bathrooms
    • 2+ Bathrooms
    • 3+ Bathrooms
    • 4+ Bathrooms
    • 5+ Bathrooms
    • 6+ Bathrooms
  • More
    • Copy Url
  • Prev
  • Next
  • Actions
    • Select All
    • Select None
    • ———-
    • Email selected properties
  • Save Search
  • Sort
    • Price – Highest to Lowest
    • Price – Lowest to Highest
    • Sort by City
    • Sort by SqFt
    • Sort by Acres
    • Sort by Price per SqFt
    • Sort by Bedrooms
    • Sort by Newest
  • Search
    Condo Condo
    Single Family Single Family
    Business Business
    Commercial Commercial
    Land Land
    Multi Family Multi Family
    Commercial Lease Commercial Lease
    Search listings using this Saved Search.
    Get email when new and updated listings match this saved search.
    Get email when newly sold listings match this saved search.
    Save Search
    Delete Shape
    Click on these drawing tools to draw shapes to contain listings. You can save these shapes as a Saved Search.
    MLS #A2239305 img 0MLS #A2239305 img 1MLS #A2239305 img 2MLS #A2239305 img 3MLS #A2239305 img 4MLS #A2239305 img 5MLS #A2239305 img 6MLS #A2239305 img 7MLS #A2239305 img 8MLS #A2239305 img 9MLS #A2239305 img 10MLS #A2239305 img 11MLS #A2239305 img 12MLS #A2239305 img 13MLS #A2239305 img 14MLS #A2239305 img 15MLS #A2239305 img 16MLS #A2239305 img 17MLS #A2239305 img 18MLS #A2239305 img 19MLS #A2239305 img 20MLS #A2239305 img 21MLS #A2239305 img 22MLS #A2239305 img 23MLS #A2239305 img 24MLS #A2239305 img 25MLS #A2239305 img 26MLS #A2239305 img 27MLS #A2239305 img 28MLS #A2239305 img 29MLS #A2239305 img 30MLS #A2239305 img 31MLS #A2239305 img 32MLS #A2239305 img 33MLS #A2239305 img 34MLS #A2239305 img 35MLS #A2239305 img 36MLS #A2239305 img 37MLS #A2239305 img 38MLS #A2239305 img 39MLS #A2239305 img 40MLS #A2239305 img 41MLS #A2239305 img 42MLS #A2239305 img 43MLS #A2239305 img 44
    previousnext
    $2,349,900

    $2,349,900

    104 Midpark Crescent SE
    Calgary AB T2X 1P2
    •  2,854 sqft
    •  4 Beds
    •  4 Baths
    •  0.28 Acres

    A rare opportunity to own a lakefront bungalow on the exclusive Lake Midnapore. This stunning 2,850 sq ft main-floor home is perfectly posi…

    More info 
    MLS #A2219690 img 0MLS #A2219690 img 1MLS #A2219690 img 2MLS #A2219690 img 3MLS #A2219690 img 4MLS #A2219690 img 5MLS #A2219690 img 6MLS #A2219690 img 7MLS #A2219690 img 8MLS #A2219690 img 9MLS #A2219690 img 10MLS #A2219690 img 11MLS #A2219690 img 12MLS #A2219690 img 13MLS #A2219690 img 14MLS #A2219690 img 15MLS #A2219690 img 16MLS #A2219690 img 17MLS #A2219690 img 18MLS #A2219690 img 19MLS #A2219690 img 20MLS #A2219690 img 21
    previousnext
    $1,199,999

    $1,199,999

    15307 1 Street SE
    Calgary AB T2X 2A2
    •  727 sqft
    •  3 Beds
    •  1 Baths
    •  0.26 Acres

    Rare opportunity in Midnapore! Situated on a massive 75’ x 150’ lot (0.26 acres), 15307 1 Street SE offers incredible versatilit…

    More info 
    MLS #A2239852 img 0MLS #A2239852 img 1MLS #A2239852 img 2MLS #A2239852 img 3MLS #A2239852 img 4MLS #A2239852 img 5MLS #A2239852 img 6MLS #A2239852 img 7MLS #A2239852 img 8MLS #A2239852 img 9MLS #A2239852 img 10MLS #A2239852 img 11MLS #A2239852 img 12MLS #A2239852 img 13MLS #A2239852 img 14MLS #A2239852 img 15MLS #A2239852 img 16MLS #A2239852 img 17MLS #A2239852 img 18MLS #A2239852 img 19MLS #A2239852 img 20MLS #A2239852 img 21MLS #A2239852 img 22MLS #A2239852 img 23MLS #A2239852 img 24MLS #A2239852 img 25MLS #A2239852 img 26MLS #A2239852 img 27MLS #A2239852 img 28MLS #A2239852 img 29MLS #A2239852 img 30MLS #A2239852 img 31MLS #A2239852 img 32MLS #A2239852 img 33
    previousnext
    $649,900

    $649,900

    32 Midland Place SE
    Calgary AB T2X 1P9
    •  1,078 sqft
    •  3 Beds
    •  2 Baths
    •  0.08 Acres

    Beautifully Renovated Bungalow in Desirable Midnapore! This completely updated bungalow offers nearly 2,000 sq ft of stylishly finished livi…

    More info 
    MLS #A2231283 img 0MLS #A2231283 img 1MLS #A2231283 img 2MLS #A2231283 img 3MLS #A2231283 img 4MLS #A2231283 img 5MLS #A2231283 img 6MLS #A2231283 img 7MLS #A2231283 img 8MLS #A2231283 img 9MLS #A2231283 img 10MLS #A2231283 img 11MLS #A2231283 img 12MLS #A2231283 img 13MLS #A2231283 img 14MLS #A2231283 img 15MLS #A2231283 img 16MLS #A2231283 img 17MLS #A2231283 img 18MLS #A2231283 img 19MLS #A2231283 img 20MLS #A2231283 img 21MLS #A2231283 img 22MLS #A2231283 img 23MLS #A2231283 img 24MLS #A2231283 img 25MLS #A2231283 img 26MLS #A2231283 img 27MLS #A2231283 img 28MLS #A2231283 img 29MLS #A2231283 img 30MLS #A2231283 img 31MLS #A2231283 img 32MLS #A2231283 img 33MLS #A2231283 img 34MLS #A2231283 img 35MLS #A2231283 img 36MLS #A2231283 img 37MLS #A2231283 img 38MLS #A2231283 img 39MLS #A2231283 img 40MLS #A2231283 img 41MLS #A2231283 img 42MLS #A2231283 img 43MLS #A2231283 img 44MLS #A2231283 img 45MLS #A2231283 img 46MLS #A2231283 img 47MLS #A2231283 img 48MLS #A2231283 img 49MLS #A2231283 img 50
    previousnext
    $519,900

    $519,900

    296 Midpark Gardens SE
    Calgary AB T2X1T3
    •  1,416 sqft
    •  3 Beds
    •  2 Baths
    •  0.09 Acres

    *OPEN HOUSE SUNDAY JULY 27 11AM-1PM* Now&#39's your chance to make this YOUR home! WELCOME to this beautifully maintained SEMI-attached…

    More info 
    MLS #A2233389 img 0MLS #A2233389 img 1MLS #A2233389 img 2MLS #A2233389 img 3MLS #A2233389 img 4MLS #A2233389 img 5MLS #A2233389 img 6MLS #A2233389 img 7MLS #A2233389 img 8MLS #A2233389 img 9MLS #A2233389 img 10MLS #A2233389 img 11MLS #A2233389 img 12MLS #A2233389 img 13MLS #A2233389 img 14MLS #A2233389 img 15MLS #A2233389 img 16MLS #A2233389 img 17MLS #A2233389 img 18MLS #A2233389 img 19MLS #A2233389 img 20MLS #A2233389 img 21MLS #A2233389 img 22MLS #A2233389 img 23MLS #A2233389 img 24MLS #A2233389 img 25MLS #A2233389 img 26MLS #A2233389 img 27MLS #A2233389 img 28MLS #A2233389 img 29MLS #A2233389 img 30MLS #A2233389 img 31MLS #A2233389 img 32MLS #A2233389 img 33MLS #A2233389 img 34MLS #A2233389 img 35MLS #A2233389 img 36MLS #A2233389 img 37MLS #A2233389 img 38MLS #A2233389 img 39MLS #A2233389 img 40MLS #A2233389 img 41MLS #A2233389 img 42MLS #A2233389 img 43
    previousnext
    $489,900

    $489,900

    48, 99 Midpark Gardens SE
    Calgary AB T2X 1L5
    •  1,421 sqft
    •  3 Beds
    •  2 Baths
    •  0 Acres

    Come home to comfort and privacy in this beautifully updated townhome, ideally located in the sought-after lake community of Midnapore. Nest…

    More info 
    MLS #A2206652 img 0MLS #A2206652 img 1MLS #A2206652 img 2MLS #A2206652 img 3MLS #A2206652 img 4MLS #A2206652 img 5MLS #A2206652 img 6MLS #A2206652 img 7MLS #A2206652 img 8MLS #A2206652 img 9MLS #A2206652 img 10MLS #A2206652 img 11MLS #A2206652 img 12MLS #A2206652 img 13MLS #A2206652 img 14MLS #A2206652 img 15MLS #A2206652 img 16MLS #A2206652 img 17MLS #A2206652 img 18MLS #A2206652 img 19MLS #A2206652 img 20MLS #A2206652 img 21MLS #A2206652 img 22MLS #A2206652 img 23MLS #A2206652 img 24MLS #A2206652 img 25MLS #A2206652 img 26MLS #A2206652 img 27MLS #A2206652 img 28MLS #A2206652 img 29MLS #A2206652 img 30MLS #A2206652 img 31MLS #A2206652 img 32MLS #A2206652 img 33MLS #A2206652 img 34MLS #A2206652 img 35MLS #A2206652 img 36MLS #A2206652 img 37
    previousnext
    $429,900

    $429,900

    162 153 Avenue SE
    Calgary AB T2X 3X6
    •  1,535 sqft
    •  3 Beds
    •  3 Baths
    •  0 Acres

    Welcome home in Midnapore! Let’s start with the fact you have Lake access! This cute Townhouse has been reno’d and is ready for you to enjoy…

    More info 
    MLS #A2242062 img 0MLS #A2242062 img 1MLS #A2242062 img 2MLS #A2242062 img 3MLS #A2242062 img 4MLS #A2242062 img 5MLS #A2242062 img 6MLS #A2242062 img 7MLS #A2242062 img 8MLS #A2242062 img 9MLS #A2242062 img 10MLS #A2242062 img 11MLS #A2242062 img 12MLS #A2242062 img 13MLS #A2242062 img 14MLS #A2242062 img 15MLS #A2242062 img 16MLS #A2242062 img 17MLS #A2242062 img 18MLS #A2242062 img 19MLS #A2242062 img 20MLS #A2242062 img 21MLS #A2242062 img 22MLS #A2242062 img 23MLS #A2242062 img 24MLS #A2242062 img 25MLS #A2242062 img 26MLS #A2242062 img 27MLS #A2242062 img 28MLS #A2242062 img 29MLS #A2242062 img 30MLS #A2242062 img 31MLS #A2242062 img 32MLS #A2242062 img 33MLS #A2242062 img 34MLS #A2242062 img 35MLS #A2242062 img 36
    previousnext
    $315,000

    $315,000

    202, 15233 1 Street SE
    Calgary AB T2X 0X5
    •  691 sqft
    •  2 Beds
    •  2 Baths
    •  0 Acres

    Welcome to this beautifully maintained 691 sqft apartment located in the vibrant and convenient community of Midnapore. Featuring 2 spacious…

    More info 
    MLS #A2241715 img 0MLS #A2241715 img 1MLS #A2241715 img 2MLS #A2241715 img 3MLS #A2241715 img 4MLS #A2241715 img 5MLS #A2241715 img 6MLS #A2241715 img 7MLS #A2241715 img 8MLS #A2241715 img 9MLS #A2241715 img 10MLS #A2241715 img 11MLS #A2241715 img 12MLS #A2241715 img 13MLS #A2241715 img 14MLS #A2241715 img 15MLS #A2241715 img 16MLS #A2241715 img 17MLS #A2241715 img 18MLS #A2241715 img 19MLS #A2241715 img 20MLS #A2241715 img 21MLS #A2241715 img 22MLS #A2241715 img 23MLS #A2241715 img 24MLS #A2241715 img 25MLS #A2241715 img 26MLS #A2241715 img 27MLS #A2241715 img 28MLS #A2241715 img 29MLS #A2241715 img 30MLS #A2241715 img 31MLS #A2241715 img 32MLS #A2241715 img 33MLS #A2241715 img 34MLS #A2241715 img 35MLS #A2241715 img 36MLS #A2241715 img 37MLS #A2241715 img 38MLS #A2241715 img 39MLS #A2241715 img 40
    previousnext
    $259,900

    $259,900

    220, 15304 Bannister Road SE
    Calgary AB T2X0M8
    •  636 sqft
    •  2 Beds
    •  1 Baths
    •  0 Acres

    Live the Lake Life Without Leaving the City! Looking for a condo that feels more like a RETREAT? This upgraded 2-bedroom (or 1 Bedroom+D…

    More info 
    MLS #A2231128 img 0MLS #A2231128 img 1MLS #A2231128 img 2MLS #A2231128 img 3MLS #A2231128 img 4MLS #A2231128 img 5MLS #A2231128 img 6MLS #A2231128 img 7MLS #A2231128 img 8MLS #A2231128 img 9MLS #A2231128 img 10MLS #A2231128 img 11MLS #A2231128 img 12MLS #A2231128 img 13MLS #A2231128 img 14MLS #A2231128 img 15MLS #A2231128 img 16MLS #A2231128 img 17MLS #A2231128 img 18MLS #A2231128 img 19MLS #A2231128 img 20
    previousnext
    $255,000

    $255,000

    216, 15304 Bannister Road SE
    Calgary AB T2X 0M8
    •  639 sqft
    •  2 Beds
    •  1 Baths
    •  0 Acres

    Welcome to your new home! This delightful 2nd-floor condo, With heated underground parking located in Midnapore, offers the perfect blend of…

    More info 
    MLS #A2217323 img 0MLS #A2217323 img 1MLS #A2217323 img 2MLS #A2217323 img 3MLS #A2217323 img 4MLS #A2217323 img 5MLS #A2217323 img 6MLS #A2217323 img 7MLS #A2217323 img 8MLS #A2217323 img 9MLS #A2217323 img 10MLS #A2217323 img 11MLS #A2217323 img 12MLS #A2217323 img 13MLS #A2217323 img 14MLS #A2217323 img 15MLS #A2217323 img 16MLS #A2217323 img 17MLS #A2217323 img 18MLS #A2217323 img 19MLS #A2217323 img 20MLS #A2217323 img 21MLS #A2217323 img 22MLS #A2217323 img 23MLS #A2217323 img 24MLS #A2217323 img 25MLS #A2217323 img 26MLS #A2217323 img 27MLS #A2217323 img 28MLS #A2217323 img 29MLS #A2217323 img 30MLS #A2217323 img 31MLS #A2217323 img 32MLS #A2217323 img 33
    previousnext
    $249,500

    $249,500

    312, 15233 1 Street SE
    Calgary AB T2X 0X5
    •  452 sqft
    •  1 Beds
    •  1 Baths
    •  0 Acres

    Welcome to this Top-Floor Gem in the great lake community of Midnapore! Step into this beautifully maintained 1-bed, 1-bath condo, perfectly…

    More info 
    MLS #A2221204 img 0MLS #A2221204 img 1MLS #A2221204 img 2MLS #A2221204 img 3MLS #A2221204 img 4
    previousnext
    $249,000

    $249,000

    31, 240 Midpark Way SE
    Calgary AB T2X 1N4
    •  0 sqft
    •   Beds
    •  0 Baths
    •  0 Acres

    An exceptional opportunity to own a well-established Shawarma restaurant located in the vibrant community of Midnapore >>>>> Nestled in a bu…

    More info 
    MLS #A2243151 img 0MLS #A2243151 img 1MLS #A2243151 img 2MLS #A2243151 img 3MLS #A2243151 img 4MLS #A2243151 img 5MLS #A2243151 img 6MLS #A2243151 img 7MLS #A2243151 img 8MLS #A2243151 img 9MLS #A2243151 img 10MLS #A2243151 img 11MLS #A2243151 img 12MLS #A2243151 img 13MLS #A2243151 img 14MLS #A2243151 img 15MLS #A2243151 img 16MLS #A2243151 img 17MLS #A2243151 img 18MLS #A2243151 img 19MLS #A2243151 img 20MLS #A2243151 img 21MLS #A2243151 img 22MLS #A2243151 img 23MLS #A2243151 img 24
    previousnext
    $237,900

    $237,900

    202, 15304 Bannister Road SE
    Calgary AB T2X 0M8
    •  636 sqft
    •  1 Beds
    •  1 Baths
    •  0 Acres

    Welcome to Solea in the desirable community of Midnapore. This one bedroom plus large den unit is located on the second floor of a quiet, we…

    More info 
    MLS #A2191902 img 0MLS #A2191902 img 1MLS #A2191902 img 2MLS #A2191902 img 3MLS #A2191902 img 4MLS #A2191902 img 5MLS #A2191902 img 6MLS #A2191902 img 7MLS #A2191902 img 8MLS #A2191902 img 9
    previousnext
    $199,900

    $199,900

    123 Any Street
    Calgary AB T2X 1N4
    •  0 sqft
    •   Beds
    •  0 Baths
    •  0 Acres

    An excellent opportunity to own a Taiwanese global franchise teahouse chain, recognized as the largest teahouse franchise in the world. This…

    More info 
    MLS #A2137354 img 0MLS #A2137354 img 1MLS #A2137354 img 2MLS #A2137354 img 3MLS #A2137354 img 4MLS #A2137354 img 5MLS #A2137354 img 6
    previousnext
    $15

    $15

    209, 240 Midpark Way
    Calgary AB T2X 1N4
    •  0 sqft
    •   Beds
    •  0 Baths
    •  8.9 Acres

    – Fully developed office spaces available with notice, 3,762 sq. ft. and 2,084 sq. ft. with elevator access to 2nd floor …

    More info 
    MLS #A2191472 img 0MLS #A2191472 img 1MLS #A2191472 img 2MLS #A2191472 img 3MLS #A2191472 img 4MLS #A2191472 img 5MLS #A2191472 img 6
    previousnext
    $15

    $15

    212, 240 Midpark Way
    Calgary AB T2X 1N4
    •  0 sqft
    •   Beds
    •  0 Baths
    •  8.9 Acres

    LAST REMAINING UNIT …

    More info 
    • Prev
    • Next
    The data relating to real estate for sale on this site comes from the Broker Reciprocity (BR) of the Calgary AB. All properties are subject to prior sale, changes, or withdrawal.
    This site was last updated Jul-26-2025 7:58:06 am.
    Rover IDX
    Rob Johnstone logo with RE/MAX Mountain View on a white background, representing his real estate services in Calgary.

    Remax Complete Realty
    Calgary

    Phone: (403) 730-2330

    Address: 11450 29 St SE #201, Calgary, AB T2Z 3V5, Canada

    Facebook Instagram Linkedin Youtube

    IDX Search Page

    Blog

    Contact Us

    Privacy Policy

    Home Price

    Market Reports

    Guaranteed Sale

    Sitemaps

    A Reputation Built on Trust

    Calgary Home Pros

    Canada Wide Referrals

    Canada Wide Referrals

    Copyright © 2025 Rob Johnstone